package math.geom3d;

import math.base.Point3d;
import math.base.Vector3d;
import math.geomUtils.CurveType;

/**
 * @author Saga
 *
 */
public class Parabola3d extends ConicalCurve3d {

    @Override
    public CurveType getCurveType() {
        return CurveType.PARABOLA;
    }

    @Override
    public final void reverse() {

    }

    @Override
    public final Curve3d reversed() {
        return null;
    }

    @Override
    public final boolean isPeriodic() {
        return false;
    }

    @Override
    public final double getPeriod() {
        throw new ArithmeticException("");
    }

    @Override
    public double getFirstParameter() {
        return Double.NEGATIVE_INFINITY;
    }

    @Override
    public double getLastParameter() {
        return Double.POSITIVE_INFINITY;
    }

    @Override
    public final Point3d calcValue(final double _param) {
        return null;
    }

    @Override
    public final Vector3d calcDerivative(final double _param) {
        return null;
    }

    @Override
    public final Vector3d calcDerivativeN(final double _param, final int _order) {
        return null;
    }

    @Override
    public final void calcValueAndDerivative1(final double _param, final Point3d _pt,
            final Vector3d _der1) {

    }

    @Override
    public final void calcValueAndDerivative2(final double _param, final Point3d _pt,
            final Vector3d _der1, final Vector3d _der2) {


    }

    @Override
    public final void calcValueAndDerivative3(final double _param, final Point3d _pt,
            final Vector3d _der1, final Vector3d _der2, final Vector3d _der3) {


    }

    @Override
    public final Parabola3d clone() {
        return null;
    }

    double focalLength;
}
